package com.yuanshen.receive;

import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

/**
 * @author 朱厚强
 * @version 1.0
 * @classname TopicListener
 * Topic  适用于多重条件和模式匹配的路由策略。
 *
 */
@Component
public class TopicListener {
    //  交换机--topic方式接受 -->注解方式
    // 注解方式实现 交换器与队列绑定
    @RabbitListener(bindings = @QueueBinding(
            // 第一个值是队列相关的
            value = @Queue(name = "zhuhq.TOPIC.queue1"),
            // 第二个值是和交换机相关的
            exchange = @Exchange(name = "zhuhq.TOPIC",type = ExchangeTypes.TOPIC),
            // 第三个值是和key相关的 现在没有路由，所以先不管他。
            key = {"china.#",}
    ))
    public void receiveT1(String message){
        System.out.println("receiveT1接收message = " + message);
    }
    // 注解方式实现 交换器与队列绑定
    @RabbitListener(bindings = @QueueBinding(
            // 第一个值是队列相关的
            value = @Queue(name = "zhuhq.TOPIC.queue2"),
            // 第二个值是和交换机相关的
            exchange = @Exchange(name = "zhuhq.TOPIC",type = ExchangeTypes.TOPIC),
            // 第三个值是和key相关的 现在没有路由，所以先不管他。
            key = {"#.news",}
    ))
    public void receiveT2(String message){
        System.out.println("receiveT2接收message = " + message);
    }
}
